home *** CD-ROM | disk | FTP | other *** search
- /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
- /* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 2000
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * Don Cone <dcone@netscape.com>
- * Rod Spears <rods@netscape.com>
- * Roland Mainz <roland.mainz@informatik.med.uni-giessen.de>
- * Julien Lafon <julien.lafon@gmail.com>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
- #include "nsISupports.idl"
-
-
- %{ C++
- #include "nsMargin.h"
- %}
-
- /**
- * Native types
- */
- [ref] native nsNativeMarginRef(nsMargin);
-
- interface nsIPrintSession;
-
- /**
- * Simplified graphics interface for JS rendering.
- *
- * @status UNDER_REVIEW
- */
- [scriptable, uuid(f1094df6-ce0e-42c9-9847-2f663172c38d)]
-
- interface nsIPrintSettings : nsISupports
- {
- /**
- * PrintSettings to be Saved Navigation Constants
- */
- const unsigned long kInitSaveOddEvenPages = 0x00000001;
- const unsigned long kInitSaveHeaderLeft = 0x00000002;
- const unsigned long kInitSaveHeaderCenter = 0x00000004;
- const unsigned long kInitSaveHeaderRight = 0x00000008;
- const unsigned long kInitSaveFooterLeft = 0x00000010;
- const unsigned long kInitSaveFooterCenter = 0x00000020;
- const unsigned long kInitSaveFooterRight = 0x00000040;
- const unsigned long kInitSaveBGColors = 0x00000080;
- const unsigned long kInitSaveBGImages = 0x00000100;
- const unsigned long kInitSavePaperSize = 0x00000200;
- const unsigned long kInitSavePaperName = 0x00000400;
- const unsigned long kInitSavePaperSizeUnit = 0x00000800;
- const unsigned long kInitSavePaperSizeType = 0x00001000;
- const unsigned long kInitSavePaperData = 0x00002000;
- const unsigned long kInitSavePaperWidth = 0x00004000;
- const unsigned long kInitSavePaperHeight = 0x00008000;
-
- const unsigned long kInitSaveReversed = 0x00010000;
- const unsigned long kInitSaveInColor = 0x00020000;
- const unsigned long kInitSaveOrientation = 0x00040000;
- const unsigned long kInitSavePrintCommand = 0x00080000;
- const unsigned long kInitSavePrinterName = 0x00100000;
- const unsigned long kInitSavePrintToFile = 0x00200000;
- const unsigned long kInitSaveToFileName = 0x00400000;
- const unsigned long kInitSavePageDelay = 0x00800000;
- const unsigned long kInitSaveMargins = 0x01000000;
- const unsigned long kInitSaveNativeData = 0x02000000;
- const unsigned long kInitSavePlexName = 0x04000000;
- const unsigned long kInitSaveShrinkToFit = 0x08000000;
- const unsigned long kInitSaveScaling = 0x10000000;
- const unsigned long kInitSaveColorspace = 0x20000000;
- const unsigned long kInitSaveResolutionName = 0x40000000;
- const unsigned long kInitSaveDownloadFonts = 0x80000000;
- const unsigned long kInitSaveAll = 0xFFFFFFFF;
-
- /* Print Option Flags for Bit Field*/
- const long kPrintOddPages = 0x00000001;
- const long kPrintEvenPages = 0x00000002;
- const long kEnableSelectionRB = 0x00000004;
-
- /* Print Range Enums */
- const long kRangeAllPages = 0;
- const long kRangeSpecifiedPageRange = 1;
- const long kRangeSelection = 2;
- const long kRangeFocusFrame = 3;
-
- /* Justification Enums */
- const long kJustLeft = 0;
- const long kJustCenter = 1;
- const long kJustRight = 2;
-
- /**
- * FrameSet Default Type Constants
- */
- const short kUseInternalDefault = 0;
- const short kUseSettingWhenPossible = 1;
-
- /**
- * Page Size Type Constants
- */
- const short kPaperSizeNativeData = 0;
- const short kPaperSizeDefined = 1;
-
- /**
- * Page Size Unit Constants
- */
- const short kPaperSizeInches = 0;
- const short kPaperSizeMillimeters = 1;
-
- /**
- * Orientation Constants
- */
- const short kPortraitOrientation = 0;
- const short kLandscapeOrientation = 1;
-
- /**
- * Print Frame Constants
- */
- const short kNoFrames = 0;
- const short kFramesAsIs = 1;
- const short kSelectedFrame = 2;
- const short kEachFrameSep = 3;
-
- /**
- * How to Enable Frame Set Printing Constants
- */
- const short kFrameEnableNone = 0;
- const short kFrameEnableAll = 1;
- const short kFrameEnableAsIsAndEach = 2;
-
- /**
- * Set PrintOptions
- */
- void SetPrintOptions(in PRInt32 aType, in PRBool aTurnOnOff);
-
- /**
- * Get PrintOptions
- */
- PRBool GetPrintOptions(in PRInt32 aType);
-
- /**
- * Set PrintOptions Bit field
- */
- PRInt32 GetPrintOptionsBits();
-
- /**
- * Returns W/H in Twips from Paper Size H/W
- */
- void GetPageSizeInTwips(out long aWidth, out long aHeight);
-
- /**
- * Makes a new copy
- */
- nsIPrintSettings clone();
-
- /**
- * Assigns the internal values from the "in" arg to the current object
- */
- void assign(in nsIPrintSettings aPS);
-
- /**
- * Data Members
- */
- [noscript] attribute nsIPrintSession printSession; /* We hold a weak reference */
-
- attribute long startPageRange;
- attribute long endPageRange;
-
- attribute double marginTop; /* these are in inches */
- attribute double marginLeft;
- attribute double marginBottom;
- attribute double marginRight;
-
- attribute double scaling; /* values 0.0 - 1.0 */
- attribute boolean printBGColors; /* Print Background Colors */
- attribute boolean printBGImages; /* Print Background Images */
-
- attribute short printRange;
-
- attribute wstring title;
- attribute wstring docURL;
-
- attribute wstring headerStrLeft;
- attribute wstring headerStrCenter;
- attribute wstring headerStrRight;
-
- attribute wstring footerStrLeft;
- attribute wstring footerStrCenter;
- attribute wstring footerStrRight;
-
- attribute short howToEnableFrameUI; /* indicates how to enable the frameset UI */
- attribute boolean isCancelled; /* indicates whether the print job has been cancelled */
- attribute short printFrameTypeUsage; /* indicates whether to use the interal value or not */
- attribute short printFrameType;
- attribute boolean printSilent; /* print without putting up the dialog */
- attribute boolean shrinkToFit; /* shrinks content to fit on page */
- attribute boolean showPrintProgress; /* indicates whether the progress dialog should be shown */
-
- /* Additional XP Related */
- attribute wstring paperName; /* name of paper */
- attribute short paperSizeType; /* use native data or is defined here */
- attribute short paperData; /* native data value */
- attribute double paperWidth; /* width of the paper in inches or mm */
- attribute double paperHeight; /* height of the paper in inches or mm */
- attribute short paperSizeUnit; /* paper is in inches or mm */
-
- attribute wstring plexName; /* name of plex mode (like "simplex", "duplex",
- * "tumble" and various custom values) */
-
- attribute wstring colorspace; /* device-specific name of colorspace, overrides |printInColor| */
- attribute wstring resolutionName;/* device-specific identifer of resolution or quality
- * (like "600", "600x300", "600x300x12", "high-res",
- * "med-res". "low-res", etc.) */
- attribute boolean downloadFonts; /* enable font download to printer? */
-
- attribute boolean printReversed;
- attribute boolean printInColor; /* a false means grayscale */
- attribute long paperSize; /* see page size consts */
- attribute long orientation; /* see orientation consts */
- attribute wstring printCommand;
- attribute long numCopies;
-
- attribute wstring printerName; /* name of destination printer */
-
- attribute boolean printToFile;
- attribute wstring toFileName;
-
- attribute long printPageDelay; /* in milliseconds */
-
- /* initialize helpers */
- /**
- * This attribute tracks whether the PS has been initialized
- * from a printer specified by the "printerName" attr.
- * If a different name is set into the "printerName"
- * attribute than the one it was initialized with the PS
- * will then get intialized from that printer.
- */
- attribute boolean isInitializedFromPrinter;
-
- /**
- * This attribute tracks whether the PS has been initialized
- * from prefs. If a different name is set into the "printerName"
- * attribute than the one it was initialized with the PS
- * will then get intialized from prefs again.
- */
- attribute boolean isInitializedFromPrefs;
-
- /* C++ Helper Functions */
- [noscript] void SetMarginInTwips(in nsNativeMarginRef aMargin);
- /* Purposely made this an "in" arg */
- [noscript] void GetMarginInTwips(in nsNativeMarginRef aMargin);
-
- };
-